76 research outputs found
The theory of classification part 5: axioms, assertions and subtyping
The algebraic calculus for reasoning about the complete behavior of object types and the effects of axioms upon subtyping were analyzed. The translation of pure algebra into a piecemeal treatment in terms of variants, pre-, and post conditions was studied. The existing object subtyping rules were applied to derive subtyping rules governing the strengthening, or weakening of the assertions as there was a direct relationship between axiom strengthening, and subtyping. It was found that weaker preconditions co-existed with stronger invariants, and the same system satisfied the stronger of the two
The theory of classification part 15: mixins and the superclass interface
The fundamental concepts of mixin, an object oriented language, are discussed. Intended to be combined with any other object, mixin is a freestanding record of extra fields. Mixins are also the primitive building blocks in languages with inheritence-like mechanisms. A mixin can be combined with many different base classes, to yield different extended classes which contain the combined base and mixing features. A mixin has a superclass interface, describing the kind of class from which it expects to inherit
The theory of classification - part 10: method combination and super-reference
The object-oriented theory of classification is analyzed, using models of inheritance with method combination. The method combination strategies using inheritance were found to be equivalent to replacement method. The method combination is achieved by Smalltalk and Java languages and the pseudo-variable in these languages allows a programmer to invoke an inherited version of a method inside the redefined version of same method. The method also provided the pseudo-variable super with two semantic interpretations. The original renaming operator to account for Eiffel's behaviour is also proposed
The theory of classification: part 14: modification and objects like myself
The Theory of Classification to handle constructor-methods, through the use of which an object can create another object 'like itself', was discussed. It need implementations of List-methods like cons, heads and tail to manipulate the multimaps, which were essentially association lists with duplicate keys. A sequence of model state updates was modelled as a nested series of method invocations. The constructor-level recursion was a generally useful feature used in the theory for the definition of more complex kinds of datatype
The theory of classification part 11: adding class types to object implementations
A model of strongly-typed object generators, in which the class-type information was attached to the object-information was developed. A class was defined as a family of objects that shared a similar implementation strategy, and a family of types shared a similar method interface. It provided a good foundation for developing further model interpretations of other object-oriented concepts such as class hierarchies, abstract classes, and interfaces. A new typed calculus was also used to present a model of strongly-typed inheritance, and a formal obligation to demonstrate that aspects of inheritance were type-sound were also fulfilled
The theory of classification part 20: modular checking of classtypes
A first-order type system has two things to commend it. Firstly, it is quite simple to implement a type-checker that can check types for exact correspondence, or for subtype compatibility with a given type. The type of the source object can be compared with that of the target variable to see if the former can be converted up to the latter, using subtyping rules like those we discussed in [1]. Secondly, code that has been checked once need never be checked again, or recompiled in new contexts. This is because the type system can never reveal more specific information about an object that is passed into a more general variable (which we have called the “type loss problem”), so the code need only be checked once over the most general type that it can accept
The theory of classification part 12: building the class hierarchy
The construction of specific object instances and the development of simple class hierarchy are discussed. The class hierarchy development includes recognizable classes, with mixtures of default, abstract and concrete methods. Generators that are extended into flexible object creation functions with initialization values passed to superclass functions, mimicking the behavior of real object-oriented languages. It is shown that the classes that are derived by inheritance give rise to objects of exact types, which match the expected interfaces of their superclasses and the separately-declared interfaces
The theory of classification part 19: the proliferation of parameters
We consider in more detail the kinds of manipulations performed upon polymorphic class-types. These are expressed using function-bounded type parameters of the form: ? <: F[?], where F is a type function, describing the shape of the interface that the type
The theory of classification part 17: multiple inheritance and the resolution of inheritance conflicts
The author considers the theoretical issues raised by combining multiple implementations. Then, he considers what it means for an object to belong to multiple parent classes, defining the notion of multiple classification
- …